package com.ztgf.sys.mapper;

import com.ztgf.sys.models.vo.SysHomePageOrderNumVO;
import com.ztgf.sys.models.vo.SysHomePageSalesVO;
import com.ztgf.sys.models.vo.SysLineChartVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

/*
 * 系统首页统计映射
 * chenyu.wang
 * */
@Mapper
public interface SysHomePageStatisticsMapper {


    /*
     * @description:系统首页今日订单总数
     * @author: chenyu.wang
     * @date: 2020-08-07
     * @param:
     * @return:
     */
    Integer querySysHomeOrderTotal();

    /*
     * @description:系统首页今日销售总额
     * @author: chenyu.wang
     * @date: 2020-08-07
     * @param:
     * @return:
     */
    BigDecimal querySysHomeSales();

    /*
     * @description:系统首页今日新上架产品
     * @author: chenyu.wang
     * @date: 2020-08-07
     * @param:
     * @return:
     */
    Integer querySysHomeNewGoods();


    /*
     * @description:系统首页产品上传审核数量
     * @author: chenyu.wang
     * @date: 2020-08-08
     * @param:
     * @return:
     */
    Integer queryCommodityPushAudit();


    /*
     * @description:系统首页售后申请介入
     * @author: chenyu.wang
     * @date: 2020-08-08
     * @param:
     * @return:
     */
    Integer queryAfterSaleNum();


    /*
     * @description:库存紧张
     * @author: chenyu.wang
     * @date: 2020-08-08
     * @param:
     * @return:
     */
    Integer queryTightInventory();

    /*
     * @description:今日佣金总额
     * @author: chenyu.wang
     * @date: 2020-08-10
     * @param:
     * @return:
     */
    BigDecimal queryTotalCommissionToday();

    /*
     * @description:后台系统首页每周订单数量统计
     * @author: chenyu.wang
     * @date: 2020-08-12
     * @param:
     * @return:
     */
    List<SysHomePageOrderNumVO> queryHomePageOrderNumOnWeek();

    /*
     * @description:后台首页查询本月每天的订单量
     * @author: chenyu.wang
     * @date: 2020-08-12
     * @param:
     * @return:
     */
    List<SysHomePageOrderNumVO> queryHomePageOrderNumOnMonth();

    /*
     * @description:自定义时间内的订单数量统计
     * @author: chenyu.wang
     * @date: 2020-08-12
     * @param:
     * @return:
     */
    SysHomePageOrderNumVO queryHomePageAutoOrderNum(@Param("startTime") String startTime, @Param("endTime") String endTime);

    /*
     * @description:查询本周，上周，本月，上月的订单数量
     * @author: chenyu.wang
     * @date: 2020-08-12
     * @param:  tyep 1本月，2本周，3上周，4上月
     * @return:
     */
    Integer queryOnUpOrderNum(@Param("type") Integer type);

    /*
     * @description:后台管理系统首页本周销售额统计
     * @author: chenyu.wang
     * @date: 2020-08-12
     * @param:
     * @return:
     */
    List<SysHomePageSalesVO> queryHomePageSalesWeek();

    /*
     * @description:后台管理系统首页本月销售额统计
     * @author: chenyu.wang
     * @date: 2020-08-12
     * @param:
     * @return:
     */
    List<SysHomePageSalesVO> queryHomePageSalesMonth();

    /*
     * @description:自定义时间内的销售额统计
     * @author: chenyu.wang
     * @date: 2020-08-12
     * @param:
     * @return:
     */
    SysHomePageSalesVO queryHomePageAutoSelas(@Param("startTime") String startTime, @Param("endTime") String endTime);

    /*
     * @description:查询本周，上周，本月，上月的销售额
     * @author: chenyu.wang
     * @date: 2020-08-12
     * @param:  yep 1本月，2本周，3上周，4上月
     * @return:
     */
    BigDecimal queryOnUpSelas(@Param("type") Integer type);

    /*
     * @description:后台管理系统首页本周佣金统计
     * @author: chenyu.wang
     * @date: 2020-08-12
     * @param:
     * @return:
     */
    List<SysHomePageSalesVO> querySysHomeCommissionWeek();

    /*
     * @description:后台管理系统本月佣金统计
     * @author: chenyu.wang
     * @date: 2020-08-12
     * @param:
     * @return:
     */
    List<SysHomePageSalesVO> querySysHomeCommissionMonth();

    /*
     * @description:自定义时间内的佣金额统计
     * @author: chenyu.wang
     * @date: 2020-08-12
     * @param:
     * @return:
     */
    SysHomePageSalesVO queryHomePageAutoCommission(@Param("startTime") String startTime, @Param("endTime") String endTime);

    /*
     * @description:查询本周，上周，本月，上月的佣金
     * @author: chenyu.wang
     * @date: 2020-08-12
     * @param:
     * @return:
     */
    BigDecimal queryOnUpCommission(@Param("type") Integer type);

    /*
     * @description:代理申请数量
     * @author: chenyu.wang
     * @date: 2020-09-01
     */
    Integer queryApplyCount();

    /*
     * @description:投诉与建议数量
     * @author: chenyu.wang
     * @date: 2020-09-01
     */
    Integer queryComplaintsCount();

    /*
     * @description:用户总览数量
     * @author: chenyu.wang
     * @date: 2020-09-01
     */
    Integer queryAllUserCount(@Param("type") Integer type);

    /**
     * @Description: 平台全部用户数量
     * @Author: chenyu.wang
     * @Params: []
     * @Date: 2020.12.08 13:46
     */
    Integer queryAllUserNum();

    /**
     * @return : java.util.List<com.ztgf.sys.models.vo.SysLineChartVO>
     * @Author :chenyu.wang
     * @Description : 后台系统首页订单统计折线图
     * @Date : 2021.02.25 10:03
     * @Param : [startTime, endTime]
     **/
    List<SysLineChartVO> querySysHomePageOrderCount(@Param("startTime") String startTime, @Param("endTime") String endTime);

    /**
     * @return : java.util.List<com.ztgf.sys.models.vo.SysLineChartVO>
     * @Author :chenyu.wang
     * @Description : 后台系统首页销售统计折线图
     * @Date : 2021.02.25 10:19
     * @Param : [startTime, endTime]
     **/
    List<SysLineChartVO> querySysHomePageSaleCount(@Param("startTime") String startTime, @Param("endTime") String endTime);

    /**
     * @return : java.util.List<com.ztgf.sys.models.vo.SysLineChartVO>
     * @Author :chenyu.wang
     * @Description : 后台系统交易额统计
     * @Date : 2021.02.25 10:19
     * @Param : [startTime, endTime]
     **/
    List<SysLineChartVO> querySysHomePageDealPrice(@Param("startTime") String startTime, @Param("endTime") String endTime);

    /**
     * @return : java.util.List<com.ztgf.sys.models.vo.SysLineChartVO>
     * @Author :chenyu.wang
     * @Description : 后台系统首页佣金统计折线图
     * @Date : 2021.02.25 10:27
     * @Param : [startTime, endTime]
     **/
    List<SysLineChartVO> querySysHomePageCommissionCount(@Param("startTime") String startTime, @Param("endTime") String endTime);

    /**
     * @return : java.lang.Integer
     * @Author :chenyu.wang
     * @Description : 获取商品规格sku数量
     * @Date : 2021.03.03 09:37
     * @Param : [state]
     **/
    Integer getSkuNum(@Param("state") Integer state);

    /**
     * @return : java.lang.Integer
     * @Author :chenyu.wang
     * @Description : 获取商品套餐SKU数量
     * @Date : 2021.03.03 09:38
     * @Param : [state]
     **/
    Integer getComboSkuNum(@Param("state") Integer state);

    /**
     * @return : java.lang.Integer
     * @Author :chenyu.wang
     * @Description : 获取商品套餐库存紧张数量
     * @Date : 2021.03.03 09:54
     * @Param : []
     **/
    Integer getA();

    /**
     * @return : java.lang.Integer
     * @Author :chenyu.wang
     * @Description : 获取商品规格库存紧张数量
     * @Date : 2021.03.03 09:54
     * @Param : []
     **/
    Integer getB();
}
